package com.info.zhiduoduo.repository.entity.company;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.info.zhiduoduo.common.constants.project.ProjectType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 企业项目(需求)
 * </p>
 *
 * @author bob
 * @since 2018-12-23
 */
@Data
@Accessors(chain = true)
@TableName("zdd_company_project")
public class CompanyProject extends Model<CompanyProject> {

	private static final long serialVersionUID = 1L;

	@TableId(value = "projectid", type = IdType.AUTO)
	private Integer projectid;
	private Integer compid;

	@ApiModelProperty("支付方式id(表zdd_payment)")
	@TableField("pay_id")
	private Integer payId;
	/**
	 * 企业名称
	 */
	private String compname;
	/**
	 * 企业昵称
	 */
	private String compnickname;
	/**
	 * 项目名
	 */
	private String projectname;
	/**
	 * 创客ID
	 */
	private Integer userid;
	/**
	 * 创客姓名
	 */
	private String realname;
	/**
	 * 创客工作室
	 */
	private String username;
	/**
	 * 分类ID
	 */
	private Integer categoryid;
	/**
	 * 项目类型 1:  4:长期项目; 参考:{@link ProjectType}
	 */
	private Integer type;
	/**
	 * 当type=2时长期项目的父项目id
	 */
	@TableField("parent_projectid")
	private Integer parentProjectid;
	/**
	 * 1.公开 2私密
	 */
	private Integer projecttype;
	/**
	 * 项目周期
	 */
	private Integer projectcycle;
	/**
	 * 项目描述
	 */
	private String projectintro;
	/**
	 * 预算起
	 */
	private BigDecimal budgetstart;
	/**
	 * 预算末
	 */
	private BigDecimal budgetend;
	/**
	 * 1.普票2专票
	 */
	private Integer invoicetype;
	/**
	 * 发票内容
	 */
	private String invoicecontent;
	/**
	 * 项目金额
	 */
	private BigDecimal projectamount;
	/**
	 * 项目成交金额
	 */
	private BigDecimal projectdealamount;
	/**
	 * 项目服务费
	 */
	private BigDecimal projectservicecharge;
	/**
	 * 项目税金
	 */
	private BigDecimal projecttaxfee;
	/**
	 * 项目支付给创客的金额
	 */
	@TableField("project_pay_amount")
	private BigDecimal projectPayAmount;
	/**
	 * 项目税率
	 */
	@TableField("project_tax_rate")
	private Double projectTaxRate;
	/**
	 * 项目基础服务费率
	 */
	@TableField("project_base_service_rate")
	private Double projectBaseServiceRate;
	/**
	 * 项目所有合伙人项目服务费分润费率
	 */
	@TableField("project_partner_service_rate")
	private Double projectPartnerServiceRate;
	/**
	 * 项目提交时间
	 */
	private Date projectsubmit;
	/**
	 * 竞标开始时间
	 */
	private Date biddingstart;
	/**
	 * 竞标结束时间
	 */
	private Date biddingend;
	/**
	 * 项目开始时间
	 */
	private Date projectstart;
	/**
	 * 项目结束时间
	 */
	private Date projectfinish;
	private Date projectcheckstart;
	private Date projectcheckend;
	/**
	 * 验收图片证据url
	 */
	@TableField("attachment_url")
	private String attachmentUrl;
	/**
	 * 拒绝验收
	 */
	@TableField("reject_reason")
	private String rejectReason;
	/**
	 * 是否需要自动验收 0:否 1:是
	 */
	@TableField("auto_check")
	private Integer autoCheck;
	/**
	 * 支付方式 1:得仕九歌商户号代付 2:线下支付 3:企业商户号支付 4:平台线下代付 5:得仕武圣商户号代付
	 */
//	@TableField("pay_type")
//	private Integer payType;
	/**
	 * 线下支付状态: 1:未支付 2:已支付 3:已处理
	 */
	@TableField("offline_pay_state")
	private Integer offlinePayState;
	/**
	 * 1草稿 2待发布 4已发布 6竞标中 7竞标失败 8竞标结束 10进行中 12验收中 13 验收完成 14 拒绝验收 15待线下支付 20已完成 40已取消 44删除
	 */
	private Integer state;
	/**
	 * 1:未仲裁 2:仲裁中 3:已仲裁
	 */
	private Integer arbitrate;
	/**
	 * 仲裁说明
	 */
	@TableField("arbitrate_remark")
	private String arbitrateRemark;
	private Date createtime;
	/** 项目剩余天数 */
	@TableField(exist = false)
	private int leftDays;
	/**
	 * 平台线下代付凭证
	 */
	private String receiptimg;
	/**
	 * 平台线下代付备注
	 */
	private String remark;
	/**
	 * 平台线下代付支付确认时间
	 */
	@TableField("offline_pay_time")
	private Date offlinePayTime;
	/**
	 * 平台线下代付支付操作人
	 */
	@TableField("offline_pay_adminid")
	private Integer offlinePayAdminid;
	/**
	 * 合伙人提现id,此项目为提现项目
	 */
	@TableField("partner_withdraw_id")
	private String partnerWithdrawId;

	/**
	 * 补录时间
	 */
	@TableField("supplement_time")
	private Date supplementTime;

	/**
	 * 是否是补录：0：不是，1.是
	 */
	@TableField("whether_supplement")
	private Integer whetherSupplement;

	/**
	 * 补录人员ID
	 */
	@TableField("supplement_personnel")
	private Integer supplementPersonnel;

	/**
	 * 长期项目的子项目提交验收时的备注,供企业参考
	 */
	@TableField("long_term_project_remark")
	private String longTermProjectRemark;

	@TableField("commodity_detail_file_path")
	private String commodityDetailFilePath;
	//备注
	@TableField("remarks_field")
	private String remarksField;
	/**
	 * 项目交付文件路径
	 */
	@TableField("delivery_path")
	private String deliveryPath;
	/**
	 * 记录项目过程中的报错信息
	 */
	private int errorCode;
	/**
	 * 记录项目过程中的报错信息
	 */
	private String errorMsg;
	/**
	 * 招标类型 1：邀约 2：公开
	 */
	private Integer bidType;
	/**
	 * 公开招标结束日期，字符串yyyy-MM-dd
	 */
	private Date bidEnd;
	/**
	 * 公开招标项目完成截止日期
	 */
	private Date bidProjectFinish;
	/**
	 * 公开招标审核结果备注
	 */
	private String bidVerifyRemark;
	/**
	 * 是否通知乙方上传交付物 0：否 1：是
	 */
	private Integer notifyUploadDelivery;
	//项目导入文件ID
	@TableField("source_file_id")
	private Integer sourceFileId;

	@ApiModelProperty("作废凭证")
	private String uselessVoucher;

	@ApiModelProperty("作废理由")
	private String uselessReason;

	@ApiModelProperty("企业主体ID")
	private Integer partyId;

	@ApiModelProperty("退费金额")
	private BigDecimal amountOfRefund;

	@ApiModelProperty("退费时间")
	private Date refundTime;

	@ApiModelProperty("退费凭证")
	private String refundVoucher;

	@ApiModelProperty("退费记录人id")
	private Integer refundRecordPersonId;

	@ApiModelProperty("是否有退费：0全部  1是 2否")
	private Integer whetherThereIsARefund;

	@ApiModelProperty("退费原因")
	private String reasonForRefund;

	@Override
	protected Serializable pkVal() {
		return this.projectid;
	}

}
